package com.ruoyi.waterDistribution.service;

import com.ruoyi.common.core.domain.business.waterDistribution.WiOrgplanM;
import com.ruoyi.waterDistribution.vo.WiLandBVo;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * 月机构限额水量及计划水量计算Service接口
 * 
 * @author ps
 * @date 2023-02-16
 */
public interface IWiOrgplanMService 
{
    /**
     * 查询月机构限额水量及计划水量计算
     * 
     * @param orgCd 月机构限额水量及计划水量计算主键
     * @return 月机构限额水量及计划水量计算
     */
    public WiOrgplanM selectWiOrgplanMByOrgCd(String orgCd);

    /**
     * 查询月机构限额水量及计划水量计算列表
     * 
     * @param wiOrgplanM 月机构限额水量及计划水量计算
     * @return 月机构限额水量及计划水量计算集合
     */
    public List<WiOrgplanM> selectWiOrgplanMList(WiOrgplanM wiOrgplanM);

    /**
     * 新增月机构限额水量及计划水量计算
     * 
     * @param wiOrgplanM 月机构限额水量及计划水量计算
     * @return 结果
     */
    public int insertWiOrgplanM(WiOrgplanM wiOrgplanM);

    /**
     * 修改月机构限额水量及计划水量计算
     * 
     * @param wiOrgplanM 月机构限额水量及计划水量计算
     * @return 结果
     */
    public int updateWiOrgplanM(WiOrgplanM wiOrgplanM);

    /**
     * 批量删除月机构限额水量及计划水量计算
     * 
     * @param orgCd 需要删除的月机构限额水量及计划水量计算主键集合
     * @return 结果
     */
    public int deleteWiOrgplanMByOrgCds(String orgCd,String planYm);

    /**
     * 删除月机构限额水量及计划水量计算信息
     * 
     * @param orgCd 月机构限额水量及计划水量计算主键
     * @return 结果
     */
    public int deleteWiOrgplanMByOrgCd(String orgCd);

    /**
     * 根据机构编码查询地块信息
     * @param orgCd
     * @return
     */
    List<WiLandBVo> getWiLandBListByOrgCd(String year, String orgCd);

    /**
     * 汇总该机构当年各月旬计划
     * @param orgCd
     * @param year
     */
    int setTenPlan(String orgCd, String year) throws Exception;

    /**
     * 汇总各级机构的逐月旬用水
     * @param year
     * @param orgCd
     * @return
     */
    ArrayList<Object> getOrgPlanByPlanYmAndOrgCd(String year, String orgCd);

    /**
     * 获取年度用水计划
     * @param year
     * @param orgCd
     * @return
     */
    ArrayList<Object> getOrgPlanYear(String year, String orgCd);

    /**
     * 显示各级水管机构计划用水和实测水量的对比
     */
    HashMap<String, Object> orgVolAnalys(String year, String orgCd);

    /**
     * 导入上一年用水计划
     * @return
     */
    List<WiOrgplanM> importLastYearPlan(String year, String orgCd);
}
